﻿using System;
using System.Collections.Generic;

namespace Microsoft.WowAddonStudio.TocEditor
{
    /// <summary>
    /// Implements metadata adjusting functionality.
    /// </summary>
    public interface IMetadataManager
    {
		/// <summary>
		/// The event is raised when the managed metadata is changed.
		/// </summary>
        event EventHandler<MetadataManagerEventArgs> OnMetadataChanged;

		/// <summary>
		/// Sets the given tag name to a given value.
		/// </summary>
		/// <param name="name">Name of metadata tag to be set.</param>
        string this[string name]
        {
            set;
        }

		/// <summary>
		/// Removes the tag with the given name from the collection.
		/// </summary>
		/// <param name="tagName">Name of tag to be removed.</param>
    	void Remove(string tagName);

		/// <summary>
		/// Gets basic metadata (title, author, version, interface, notes).
		/// </summary>
		IEnumerable<KeyValuePair<string, string>> GetBasicTags();

		/// <summary>
		/// Gets other metadata specified by user.
		/// </summary>
		IEnumerable<KeyValuePair<string, string>> GetExtendedTags();
    }
}